---
title: clsAgency
summary: API reference for clsAgency.
status: draft
owner: SAIF Claims BOF team
last_reviewed: 2026-08-21
library: SAIF.Business.View.Policy
reference_type: embedded
---

# clsAgency

`clsAgency` holds agency/agent contact and address information for a policy. It implements
demo-user data masking so that agency/agent names and contact fields are not exposed as real PII to
demo-tier users ([BR-VP-010](../../business-rules.md#br-vp-010-demo-user-agency-agent-data-masking)).

## Purpose
- Retrieves agency/agent contact and address information for a policy via [SQL-VP-001](../../sql/SQL-001-getagency.md).
- Replaces agency/agent names and contact fields with masking constants for demo users ([BR-VP-010](../../business-rules.md#br-vp-010-demo-user-agency-agent-data-masking)).

## Context
- Namespace: `SAIF.Business.View.Policy`
- Assembly/package: `SAIF.Business.View.Policy` (embedded library reference)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `GetAgency` | `Shared Function GetAgency(DPI As IDataPortalInfo, PolicyNum As Decimal) As clsAgency` | Retrieves the agency/agent record for a policy. |
| `AgencyName` | `ReadOnly Property AgencyName As String` | Agency name; replaced with `"SAIF APPOINTED AGENT"` for demo users when non-blank and not `"SAIF"`. |
| `AgentName` | `ReadOnly Property AgentName As String` | Agent name; masked the same way as `AgencyName` for demo users. |
| `PhoneFormatted` | `ReadOnly Property PhoneFormatted As String` | Formatted phone number; replaced with a masking constant for demo users. |
| `AgencySeqNum` | `Property AgencySeqNum As Decimal` | Agency sequence number, used by `clsPolicySecurity` for agent access matching ([BR-VP-005](../../business-rules.md#br-vp-005-agent-ownership-match-required)). |

## Inherited public members

Members in this section are inherited from `clsBusinessBase` in `saif.framework.core`. They are
available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `Rules` | `Property Rules As clsRulesManager` | Owns the rule-registration/enforcement engine for this object.† | `saif.framework.core` — `clsBusinessBase` |
| `BeginEdit` / `CancelEdit` / `ApplyEdit` | Editing-scope members | Manage an in-memory editing scope for this object.† | `saif.framework.core` — `clsBusinessBase` |
| `Error` (via `IDataErrorInfo`) | `ReadOnly Property Error As String` | Surfaces broken-rule state to data-bound UI controls.† | `saif.framework.core` — `clsBusinessBase` |

## Behavioral notes
- Masking is applied on read (property getters/`Fill`), not on the underlying stored data — the real values remain in memory.*

## Constraints and usage notes
- Demo-user status is determined by the `UserAccessLevel` supplied when the owning `clsPolicyData` was retrieved.

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Business.View.Policy\clsAgency.vb`
